export default defineNuxtConfig({
  // 源码目录，确保 "~" 和 "@" 指向 app/
  srcDir: 'app',
  devtools: { enabled: true },
  
  // 开发服务器配置
  devServer: {
    host: '0.0.0.0',
    port: 3000
  },

  // 模块配置
  modules: [
    '@nuxt/ui',
    '@pinia/nuxt',
    '@vueuse/nuxt'
  ],

  // CSS 配置
  css: [
    'element-plus/dist/index.css',
    '~/assets/css/main.css'
  ],

  // 插件配置
  plugins: [
    '~/plugins/element-plus.client.ts'
  ],

  // Vite 配置
  vite: {
    esbuild: {
      drop: process.env.NODE_ENV === 'production' ? ['console', 'debugger'] : [],
      legalComments: 'none'
    },
    build: {
      target: 'es2018',
      sourcemap: false,
      cssCodeSplit: true,
      minify: 'esbuild',
      assetsInlineLimit: 4096,
      chunkSizeWarningLimit: 1200,
      rollupOptions: {
        output: {
          manualChunks: {
            vue: ['vue'],
            element: ['element-plus', '@element-plus/icons-vue']
          }
        }
      }
    }
  },

  // 运行时配置
  runtimeConfig: {
    // 私有配置（仅在服务器端可用）
    apiSecret: '123',
    
    // 公共配置（暴露给客户端）
    public: {
      apiBase: process.env.NUXT_PUBLIC_API_BASE || 'http://10.185.7.206:8092',
      cloudRbacUrl: process.env.NUXT_PUBLIC_CLOUD_RBAC_URL || 'https://zhyj-yfwb.devdolphin.com/cloud-rbac',
      wechatAppId: process.env.NUXT_PUBLIC_WECHAT_APP_ID || 'wx1252cf1f26c7faee'
    }
  },

  // 应用配置
  app: {
    baseURL: '/ezsafe-visitor/',
    head: {
      title: '企业访客登记系统',
      meta: [
        { charset: 'utf-8' },
        { name: 'viewport', content: 'width=device-width, initial-scale=1' },
        { name: 'description', content: '企业访客登记系统 - 安全第一' }
      ],
      link: [
        { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
      ]
    }
  },

  // TypeScript 配置
  typescript: {
    strict: true,
    // 在生产构建或显式关闭时，禁用类型检查（Docker 构建更稳定）
    typeCheck: process.env.NUXT_TYPE_CHECK !== 'false' && process.env.NODE_ENV !== 'production'
  },

  // 兼容性配置
  compatibilityDate: '2024-10-16',

  // 实验性功能
  experimental: {
    payloadExtraction: false
  },

  // 服务器端渲染配置
  ssr: false,

  // 路由配置
  router: {
    options: {
      scrollBehaviorType: 'smooth'
    }
  },

  // 构建优化
  nitro: {
    baseURL: '/ezsafe-visitor/',
    compressPublicAssets: true,
    minify: true
  }
})
